Modify existing enumeration value from default to Multi-valued

Hi Folks,
We have Enumeration base type attribute "SW IP In" created with 15+ values and it is a defult dropdown list. Now my customer asking to change this behaviour to Multi-Valued so that we can have more than one value selected for single object.
 
I have tried following steps,
 
1. Disable change management for all the modules (We have around 60+ modules integrated with CQ)
2. Open one module and goto attibutes and edit attibute.Now select Multi-valued option and save the module
3. Run a Copy attribute script selected with "Modify existing attibutes/Types" and apply for other mdules.
4. Now i am getting error "The attribute 'SW IP In' already exists in module so could NOT modify type:Module is not open for edit.
 
Please can someone suggest how i can achieve this without updating each module manually??..

delhiganesh - Wed Sep 24 01:43:53 EDT 2014

Re: Modify existing enumeration value from default to Multi-valued
Wolfgang Uhr - Wed Sep 24 03:56:28 EDT 2014

Hi

You can use

AttrDef atDefOld = find (...)

AttrDef atDefNew = modify(atDefOld, setMulti, true);

to change a single value attribute to a multi value attribute "on the fly". As far as I know, the actual settings will be not changed, that means: The single value you have allready selected is the one which is selected in the multivalue attribute.

The change from "atDefOld" to "atDefNew" is more or less an academic problem. atDefOld is invalid after you have used this modify command.

You cannot copy this Attribute Definition into an other file, you have to perform this modify-command in each module

Best regards

Wolfgang

Re: Modify existing enumeration value from default to Multi-valued
delhiganesh - Wed Sep 24 05:57:31 EDT 2014

Wolfgang Uhr - Wed Sep 24 03:56:28 EDT 2014

Hi

You can use

AttrDef atDefOld = find (...)

AttrDef atDefNew = modify(atDefOld, setMulti, true);

to change a single value attribute to a multi value attribute "on the fly". As far as I know, the actual settings will be not changed, that means: The single value you have allready selected is the one which is selected in the multivalue attribute.

The change from "atDefOld" to "atDefNew" is more or less an academic problem. atDefOld is invalid after you have used this modify command.

You cannot copy this Attribute Definition into an other file, you have to perform this modify-command in each module

Best regards

Wolfgang

Thanks Wolfgang :), I have used following script which is perfectly working in our environment,

pragma runLim, 0   //Disables DXL execution Timeout warning

AttrDef ad
 
Module mod = current
{
    
      ad = find(mod, "SW IP In")
      ad = modify(ad, setMulti, true)
    }
save mod
close mod
"\n"

Warm Regards,

Ganesh